from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
from forms_app.models import Tenant, FormTemplate, FormSection, FormField

class Command(BaseCommand):
    help = '创建初始测试数据'

    def handle(self, *args, **kwargs):
        self.stdout.write('开始创建测试数据...')

        # 清理现有数据
        self.stdout.write('清理现有数据...')
        FormField.objects.all().delete()
        FormSection.objects.all().delete()
        FormTemplate.objects.all().delete()
        Tenant.objects.all().delete()

        # 创建超级用户（如果不存在）
        if not User.objects.filter(username='admin').exists():
            User.objects.create_superuser('admin', 'admin@example.com', 'admin123')
            self.stdout.write('创建超级用户: admin/admin123')

        # 创建测试租户
        tenant1 = Tenant.objects.create(
            name='测试租户1'
        )
        tenant2 = Tenant.objects.create(
            name='测试租户2'
        )

        # 创建测试表单1：客户反馈表
        template1 = FormTemplate.objects.create(
            tenant=tenant1,
            title='客户反馈表'
        )

        # 创建表单1的字段组
        section1 = FormSection.objects.create(
            template=template1,
            title='基本信息',
            order=1
        )

        section2 = FormSection.objects.create(
            template=template1,
            title='反馈内容',
            order=2
        )

        # 创建表单1的字段
        basic_fields = [
            {
                'section': section1,
                'field_type': 'text',
                'label': '姓名',
                'required': True,
                'order': 1
            },
            {
                'section': section1,
                'field_type': 'text',
                'label': '联系电话',
                'required': True,
                'order': 2
            },
            {
                'section': section1,
                'field_type': 'select',
                'label': '客户类型',
                'required': True,
                'options': '个人客户,企业客户,政府机构',
                'order': 3
            }
        ]

        feedback_fields = [
            {
                'section': section2,
                'field_type': 'radio',
                'label': '整体满意度',
                'required': True,
                'options': '非常满意,满意,一般,不满意,非常不满意',
                'order': 1
            },
            {
                'section': section2,
                'field_type': 'checkbox',
                'label': '需要改进的方面',
                'required': False,
                'options': '产品质量,服务态度,响应速度,价格,其他',
                'order': 2
            },
            {
                'section': section2,
                'field_type': 'text',
                'label': '具体建议',
                'required': False,
                'order': 3
            },
            {
                'section': section2,
                'field_type': 'image',
                'label': '相关图片',
                'required': False,
                'order': 4
            }
        ]

        # 创建字段
        for field_data in basic_fields + feedback_fields:
            FormField.objects.create(
                template=template1,
                section=field_data['section'],
                label=field_data['label'],
                field_type=field_data['field_type'],
                required=field_data['required'],
                options=field_data.get('options'),
                order=field_data['order']
            )

        # 创建测试表单2：会议室预订表
        template2 = FormTemplate.objects.create(
            tenant=tenant2,
            title='会议室预订表'
        )

        # 创建表单2的字段组
        section3 = FormSection.objects.create(
            template=template2,
            title='预订信息',
            order=1
        )

        # 创建表单2的字段
        booking_fields = [
            {
                'section': section3,
                'field_type': 'text',
                'label': '预订人',
                'required': True,
                'order': 1
            },
            {
                'section': section3,
                'field_type': 'select',
                'label': '会议室',
                'required': True,
                'options': '大会议室,小会议室,培训室',
                'order': 2
            },
            {
                'section': section3,
                'field_type': 'number',
                'label': '参会人数',
                'required': True,
                'order': 3
            },
            {
                'section': section3,
                'field_type': 'checkbox',
                'label': '所需设备',
                'required': False,
                'options': '投影仪,白板,视频会议设备,音响',
                'order': 4
            },
            {
                'section': section3,
                'field_type': 'text',
                'label': '会议主题',
                'required': True,
                'order': 5
            }
        ]

        # 创建字段
        for field_data in booking_fields:
            FormField.objects.create(
                template=template2,
                section=field_data['section'],
                label=field_data['label'],
                field_type=field_data['field_type'],
                required=field_data['required'],
                options=field_data.get('options'),
                order=field_data['order']
            )

        self.stdout.write(self.style.SUCCESS('测试数据创建成功！')) 